]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
6 years agoextensionPrefs: Stop handling UUIDs on the command line
Florian Müllner [Thu, 5 Mar 2020 18:44:28 +0000 (19:44 +0100)]
extensionPrefs: Stop handling UUIDs on the command line

We are jumping through quite some hoops to support showing only the
preference dialog when given a UUID on the command line.

As gnome-shell is about to stop calling out to us for the prefs dialog,
the reason for supporting this is going away, so remove all the special
handling.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1106

6 years agoextensionPrefs: Use template for preference dialog
Florian Müllner [Fri, 6 Mar 2020 00:03:45 +0000 (01:03 +0100)]
extensionPrefs: Use template for preference dialog

The dialog that contains the extension's preference widget has become
fairly complex over time, mostly due to the error handling.

It therefore makes sense to move it to a template, just like we did
for the main application window and extension rows.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1106

6 years agocloseDialog: Remove transitions before resetting dialog
Florian Müllner [Sat, 21 Mar 2020 23:18:13 +0000 (00:18 +0100)]
closeDialog: Remove transitions before resetting dialog

On X11, _onFocusChanged() updates the input region, as well as the
reactive-ness of the dialog's buttons.

That method is not only used as signal handlers (which are correctly
disconnected when the dialog is hidden), it also runs when the "show"
transition completes.

That's a problem if the transition is still ongoing when the dialog is
hidden, as it will then only complete when it is replaced by the "hide"
transition, after the this._dialog has been reset to null, and trying
to access the dialog's buttons results in an error.

Avoid this by explicitly removing all transition on hide before
resetting the dialog.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2467

6 years agokeyboard: Fix fallback layout when using variants
Florian Müllner [Mon, 23 Mar 2020 15:14:47 +0000 (16:14 +0100)]
keyboard: Fix fallback layout when using variants

Commit c1ec7b2ff meant to fall back to the base layout in case
a variant like `fr+oss` is set up, but as we are checking for
'+' on the array rather than the layout name, the fallback only
"works" for a layout that is literally called '+', whoops.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2471

6 years agounlockDialog: Handle embedded newlines in notifications
Florian Müllner [Sun, 22 Mar 2020 20:14:34 +0000 (21:14 +0100)]
unlockDialog: Handle embedded newlines in notifications

Detailed notifications are meant to be single line, just as unexpanded
notification banners. So handle them the same way as in the message
list, and replace embedded newlines by spaces.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2463

6 years agologinDialog: Retain native logo dimensions
Daniel van Vugt [Mon, 16 Mar 2020 10:05:53 +0000 (18:05 +0800)]
loginDialog: Retain native logo dimensions

So that the same logo may be used during boot and keeps its
dimensions on the login screen, appearing to never move.

Related to: https://bugs.launchpad.net/bugs/1867133

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1101

6 years agoextensions-tool: Use OpenExtensionPrefs() method
Florian Müllner [Tue, 10 Mar 2020 16:47:25 +0000 (17:47 +0100)]
extensions-tool: Use OpenExtensionPrefs() method

LaunchExtensionPrefs() was deprecated in commit fda938175e5d,
so switch to the replacement.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1097

6 years agoextensionPrefs: Sync list visibility on status changes
Florian Müllner [Thu, 12 Mar 2020 21:55:43 +0000 (22:55 +0100)]
extensionPrefs: Sync list visibility on status changes

We only show the list of system- and user extensions if corresponding
extensions are installed, however we only update the visibility
after loading the initial list of extensions.

As it's possible for the first user extension to be installed while the
app is open or the last one to be removed, we should also update the
list visibility after extension state changes.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1088

6 years agoUpdate Hebrew translation
Yosef Or Boczko [Sat, 21 Mar 2020 23:27:40 +0000 (23:27 +0000)]
Update Hebrew translation

6 years agoUpdate Catalan translation
Jordi Mas [Sat, 21 Mar 2020 22:37:37 +0000 (23:37 +0100)]
Update Catalan translation

6 years agoUpdate Croatian translation
Goran Vidović [Sat, 21 Mar 2020 21:48:00 +0000 (21:48 +0000)]
Update Croatian translation

6 years agodbusServices: Allow to inhibit auto-shutdown
Florian Müllner [Fri, 20 Mar 2020 21:32:08 +0000 (22:32 +0100)]
dbusServices: Allow to inhibit auto-shutdown

While we only shut down after a method call completed or (if the
interface has signals) the sender disconnects from the bus, services
may need to inhibit auto-shutdown for more specific reasons themselves,
for example when a method call kicks off an operation that should
complete before shutting down.

Add hold() and release() methods like Gio.Application for those cases.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1115

6 years agobuild: Add configuration summaries
Florian Müllner [Thu, 5 Mar 2020 11:44:35 +0000 (12:44 +0100)]
build: Add configuration summaries

Meson now has a summary() function to easily summarize the build
configuration after the project was configured, use that for some
fancy output when the feature is available.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1072

6 years agobuild: Make bash-completion support optional
Florian Müllner [Thu, 5 Mar 2020 13:56:13 +0000 (14:56 +0100)]
build: Make bash-completion support optional

Whether we install bash-completion support currently depends on whether
the corresponding pkg-config dependency is found.

Turning this into a feature option keeps that behavior by default, but
also allows to explicitly enable or disable the support.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1072

6 years agobuild: Use fixed gettext domain for non-subproject extension-tool builds
Florian Müllner [Thu, 5 Mar 2020 13:28:21 +0000 (14:28 +0100)]
build: Use fixed gettext domain for non-subproject extension-tool builds

Clarify how the option is supposed to be used by
 - ignoring it for non-subproject builds
 - enforcing that it is set for subproject builds

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1072

6 years agobuild: Yield 'man' option to extension-tool subproject
Florian Müllner [Thu, 5 Mar 2020 02:54:23 +0000 (03:54 +0100)]
build: Yield 'man' option to extension-tool subproject

Turns out meson has a build-in pattern of what we are doing, namely:
Set a subproject option to a parent project option of the same name.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1072

6 years agobuild: Drop install argument from configure_file()
Florian Müllner [Sat, 21 Mar 2020 19:38:53 +0000 (20:38 +0100)]
build: Drop install argument from configure_file()

It requires meson 0.50.0 and is not necessary when install_dir
is specified, so just drop it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1072

6 years agobuild: Assert extension-tool version is bumped alongside gnome-shell
Florian Müllner [Sun, 8 Mar 2020 00:57:34 +0000 (01:57 +0100)]
build: Assert extension-tool version is bumped alongside gnome-shell

I always forget to keep the extension-tool version number in sync when
doing a new release. Given that it's unlikely that I'll do much better
in the future by myself, make distcheck fail when the versions don't
match.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1076

6 years agoUpdate Serbian translation
Марко Костић [Sat, 21 Mar 2020 14:31:17 +0000 (14:31 +0000)]
Update Serbian translation

6 years agobuild: Add missing dependency to run-js-test
Jan Tojnar [Mon, 18 Sep 2017 23:05:13 +0000 (01:05 +0200)]
build: Add missing dependency to run-js-test

run-js-test requires girepository.h header file which is provided
by gobject-introspection. gobject-introspection is required by gjs,
another of our dependencies, so, usually, the header gets included
by inheriting the cflags from there but some distros interpret
pkg-config fields more strictly[1] so that will not be the case there.

Listing direct dependencies explicitly is a good practice any way
so let’s do that.

[1]: https://bugs.freedesktop.org/show_bug.cgi?id=105572

https://bugzilla.gnome.org/show_bug.cgi?id=787864
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1114

6 years agoextensionPrefs: Remove unused files
Florian Müllner [Thu, 19 Mar 2020 22:24:34 +0000 (23:24 +0100)]
extensionPrefs: Remove unused files

We include the regular Config module from js/misc, not the stripped-down
copy that was added in commit c8a4a9168.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1109

6 years agoUpdate Persian translation
Danial Behzadi [Fri, 20 Mar 2020 23:36:44 +0000 (23:36 +0000)]
Update Persian translation

6 years agoUpdate Catalan translation
Jordi Mas [Fri, 20 Mar 2020 17:47:41 +0000 (18:47 +0100)]
Update Catalan translation

6 years agopadOsd: Add parameter type to keybinding-edited signal
Carlos Garnacho [Fri, 20 Mar 2020 12:31:03 +0000 (13:31 +0100)]
padOsd: Add parameter type to keybinding-edited signal

This has a string argument, but none was defined.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/2451
6 years agoUpdated Spanish translation
Daniel Mustieles [Fri, 20 Mar 2020 11:30:35 +0000 (12:30 +0100)]
Updated Spanish translation

6 years agoUpdate French translation
Guillaume Bernard [Fri, 20 Mar 2020 07:38:32 +0000 (07:38 +0000)]
Update French translation

6 years agoUpdate Indonesian translation
Kukuh Syafaat [Fri, 20 Mar 2020 07:14:37 +0000 (07:14 +0000)]
Update Indonesian translation

6 years agodateMenu: Show minutes for timezones that have minutes offset
Jonas Dreßler [Thu, 19 Mar 2020 19:53:19 +0000 (20:53 +0100)]
dateMenu: Show minutes for timezones that have minutes offset

Some timezones, like the one of Kathmandu don't only have hour-based
timezone offsets, but their timezones are also offset by minutes. So
instead of showing weird values like "+5.8", show the minutes properly
in a format like "+5:45".

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2438

6 years agodateMenu: Clean up timezone offset calculation a bit
Jonas Dreßler [Thu, 19 Mar 2020 19:48:12 +0000 (20:48 +0100)]
dateMenu: Clean up timezone offset calculation a bit

Use const variables and change some names to make showing minute-offsets
in the next commit a bit more straightforward.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1107

6 years agoextensionPrefs: Initialize gettext
Florian Müllner [Thu, 19 Mar 2020 19:38:16 +0000 (20:38 +0100)]
extensionPrefs: Initialize gettext

I misremembered that imports.package.start() would set up the correct
gettext domain, but the module only provides a convenience method
for doing that.

Use it to bring back translations in the Extensions app, whoops.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1108

6 years agoUpdate Ukrainian translation
Yuri Chornoivan [Thu, 19 Mar 2020 20:42:12 +0000 (20:42 +0000)]
Update Ukrainian translation

6 years agoUpdate Swedish translation
Anders Jonsson [Thu, 19 Mar 2020 20:41:40 +0000 (20:41 +0000)]
Update Swedish translation

6 years agoUpdate Italian translation
Milo Casagrande [Thu, 19 Mar 2020 15:09:35 +0000 (15:09 +0000)]
Update Italian translation

6 years agoUpdate Polish translation
Piotr Drąg [Thu, 19 Mar 2020 14:42:25 +0000 (15:42 +0100)]
Update Polish translation

6 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Thu, 19 Mar 2020 14:37:36 +0000 (14:37 +0000)]
Update Brazilian Portuguese translation

6 years agoextensionPrefs: Hook up kill switch to D-Bus property
Florian Müllner [Thu, 5 Mar 2020 17:46:18 +0000 (18:46 +0100)]
extensionPrefs: Hook up kill switch to D-Bus property

Now that the org.gnome.Shell.Extensions interface exposes the
disable-user-extensions setting on D-Bus, we can use that instead
of the shell's GSettings.

In a future where we distribute the app separately as flatpak, this
will require one less hole in the sandbox.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1081

6 years agoextensionPrefs: Load D-Bus interface from own resource
Florian Müllner [Sat, 7 Mar 2020 18:26:06 +0000 (19:26 +0100)]
extensionPrefs: Load D-Bus interface from own resource

Using the "regular" loadInterfaceXML() helper means less code duplication,
but it also ties us to the resource used by gnome-shell.

In order to untangle the extension app from core gnome-shell, change that
to load the interface from the existing data resource instead. While that
does involve reimplementing loadInterfaceXML(), it's not too bad actually
with the resource-loading code stripped (as the data resource is already
loaded by the package module).

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1081

6 years agoextensionPrefs: Make app D-Bus-activatable
Florian Müllner [Sun, 8 Mar 2020 21:38:47 +0000 (22:38 +0100)]
extensionPrefs: Make app D-Bus-activatable

This is the preferred way of launching applications nowadays.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1081

6 years agoextensionPrefs: Add metainfo
Florian Müllner [Thu, 12 Mar 2020 19:27:32 +0000 (20:27 +0100)]
extensionPrefs: Add metainfo

This is required for the app to appear properly in GNOME Software.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1081

6 years agoextensionPrefs: Move desktop file and icons from top-level data
Florian Müllner [Sun, 8 Mar 2020 14:04:46 +0000 (15:04 +0100)]
extensionPrefs: Move desktop file and icons from top-level data

Another small step towards making the extensions app code
self-contained ...

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1081

6 years agoextensionPrefs: Move data/sources into subdirectories
Florian Müllner [Sun, 8 Mar 2020 13:50:59 +0000 (14:50 +0100)]
extensionPrefs: Move data/sources into subdirectories

As we will eventually move the code to a subproject, start arranging
it like a top-level srcdir.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1081

6 years agoextensionPrefs: Use imports.package.start()
Florian Müllner [Thu, 5 Mar 2020 16:44:27 +0000 (17:44 +0100)]
extensionPrefs: Use imports.package.start()

We want to make the extensions app code more self-contained to make it
easier to build separately, and ultimately make it available on flathub.

One complication we are facing is that it is currently all over the source
tree:
 - js/extensionPrefs for the main code
 - src for the launcher process
 - data for .desktop file and icons

Switching from a C launcher to the imports.package module allows us to
consolidate the first two, and will also take care of the annoying
setup bits (defining JS search path, extending GI lookup, loading
resources).

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1081

6 years agomodemManager: fixed dbus path for GDBusProxy
Reik Keutterling [Thu, 19 Mar 2020 11:06:26 +0000 (12:06 +0100)]
modemManager: fixed dbus path for GDBusProxy

Fix this runtime error:
JS ERROR: TypeError: this._proxy.SignalQuality is null
_reloadSignalQuality@resource:///org/gnome/shell/misc/modemManager.js:252:34
_init@resource:///org/gnome/shell/misc/modemManager.js:234:14
NMDeviceModem@resource:///org/gnome/shell/ui/status/network.js:517:34
_deviceAdded@resource:///org/gnome/shell/ui/status/network.js:1755:27

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1105

6 years agoUpdate Slovak translation
Peter Mráz [Thu, 19 Mar 2020 06:20:35 +0000 (06:20 +0000)]
Update Slovak translation

6 years agoUpdate Slovak translation
Peter Mráz [Wed, 18 Mar 2020 14:54:25 +0000 (14:54 +0000)]
Update Slovak translation

6 years agoextensionSystem: Catch errors when updating extensions
Florian Müllner [Mon, 9 Mar 2020 15:45:22 +0000 (16:45 +0100)]
extensionSystem: Catch errors when updating extensions

Extension updates are installed at startup, so any errors that bubble
up uncaught will prevent the startup to complete.

While the most likely error reason was addressed in the previous commit
(pending update for a no-longer exitent extension), it makes sense to
catch any kind of corrupt updates to not interfere with shell startup.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2343

6 years agoextensionDownloader: Remove pending updates with extension
Florian Müllner [Mon, 9 Mar 2020 15:49:34 +0000 (16:49 +0100)]
extensionDownloader: Remove pending updates with extension

When an extension is uninstalled, there is no point in keeping
a pending update: If the update didn't fail (which it currently
does), we would end up sneakily reinstalling the extension.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2343

6 years agonetworkAgent: Make searching VPN binaries asynchronous
Florian Müllner [Sat, 14 Mar 2020 21:01:00 +0000 (22:01 +0100)]
networkAgent: Make searching VPN binaries asynchronous

Doing blocking IO in a graphical UI is bad, doing it in the compositor
is much much worse. So even if handling VPN requests is a relatively
rare event, doing it asynchronously is better.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2386

6 years agoshell/network-agent: Wrap nm_plugin_info_new_search_file()
Florian Müllner [Sat, 14 Mar 2020 20:51:33 +0000 (21:51 +0100)]
shell/network-agent: Wrap nm_plugin_info_new_search_file()

While we can use the libnm API directly from JS, the call will
synchronously load the VPN service descriptions from disk.
Previously we were lowering the impact by caching the result,
but as we stopped doing that, it becomes more important to address
the issue properly and move it off to a thread.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2386

6 years agonetworkAgent: Drop VPN plugin cache
Florian Müllner [Fri, 13 Mar 2020 21:09:33 +0000 (22:09 +0100)]
networkAgent: Drop VPN plugin cache

libnm doesn't only search for plugins in the regular VPN plugin directory,
but also in the legacy location and the directory pointed to by the
NM_VPN_PLUGIN_DIR environment variable (if set).

We don't monitor the additional directories, so it's possible for our cache
to become outdated.

Instead of trying to play catch-up with libnm's internals, do what nm-applet
does and use the appropriate API to look up the plugin on each request.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2386

6 years agoextensionDownloader: Only check server if there's something to update
Florian Müllner [Sun, 15 Mar 2020 22:41:27 +0000 (23:41 +0100)]
extensionDownloader: Only check server if there's something to update

checkForUpdates() will currently always query the server for updates,
even when passing an empty vardict of installed extensions. We know
there won't be any updates in that case, so avoid a pointless network
request.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1100

6 years agodateMenu: Don't ellipsize world clock time/tz
Florian Müllner [Fri, 13 Mar 2020 14:37:42 +0000 (15:37 +0100)]
dateMenu: Don't ellipsize world clock time/tz

If we need to ellipsize, it should be the location name, not the time
or timezone offset.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1090

6 years agoa11y: Change HC icon theme first
Florian Müllner [Sat, 14 Dec 2019 18:15:53 +0000 (19:15 +0100)]
a11y: Change HC icon theme first

There are two ways for applications to provide a high contrast icon:

 1. install an icon into the HighContrast theme
 2. install a symbolic icon into the default hicolor theme

The latter is preferred nowadays, and implemented in the high-contrast
CSS variant by enforcing the symbolic icon style.

However together with the way we currently enable/disable high-contrast,
this can lead to the following race:
 1. the GTK theme is changed from HighContrast
 2. we reload the default stylesheet
 3. the icon style changes to "regular", so we request a
    new icon from the HighContrast icon theme
 4. the icon theme is changed from HighContrast
 5. we evict existing icons from the cache
 6. we reload icons for the new icon theme; however as we
    find a pending request (from 3), we re-use it
 7. the request from 3 finishes, and we end up with a
    wrong icon in the cache

The simplest fix is to change the icon theme before the GTK theme: Unlike the
theme name, the icon style is encoded in the cache key, so we won't re-use
an old (and incorrect) request in that case.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2414

6 years agoUpdate Russian translation
Stas Solovey [Sun, 15 Mar 2020 21:14:23 +0000 (21:14 +0000)]
Update Russian translation

6 years agomodemManager: Look for property on correct object
Cosimo Cecchi [Sat, 14 Mar 2020 21:42:43 +0000 (14:42 -0700)]
modemManager: Look for property on correct object

The SignalQuality property is defined on the GDBusProxy, not the modem
JS object.
Fix this runtime warning:

JS WARNING: [resource:///org/gnome/shell/misc/modemManager.js 252]: reference to undefined property "SignalQuality"
JS ERROR: TypeError: this.SignalQuality is undefined
_reloadSignalQuality@resource:///org/gnome/shell/misc/modemManager.js:252:34
_init@resource:///org/gnome/shell/misc/modemManager.js:234:14
NMDeviceModem@resource:///org/gnome/shell/ui/status/network.js:517:34
_deviceAdded@resource:///org/gnome/shell/ui/status/network.js:1755:27

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1097

6 years agojs: Always use AppSystem to lookup apps
Florian Müllner [Sat, 14 Mar 2020 13:45:42 +0000 (14:45 +0100)]
js: Always use AppSystem to lookup apps

There is no good reason for bypassing the application cache in
AppSystem and loading .desktop files again.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1093

6 years agocalendar: Adjust for evolution changes
Florian Müllner [Sat, 14 Mar 2020 13:45:42 +0000 (14:45 +0100)]
calendar: Adjust for evolution changes

When launching the default calendar application, we special-case
evolution to make sure it starts up with the calendar component.

This is currently broken in two ways:

 - evolution changed its .desktop file to use reverse DNS notation

 - as evolution can now be distributed via flatpak, we can no longer
   assume that 'evolution-calendar.desktop' exists when evolution does
   (even though we ship the .desktop file ourselves, it is considered
   invalid if the executable isn't found)

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1093

6 years agomain: Unwatch notification proxy name after auto-start
Florian Müllner [Thu, 12 Mar 2020 22:23:37 +0000 (23:23 +0100)]
main: Unwatch notification proxy name after auto-start

We only "watch" the 'org.gnome.Shell.Notifications' name to start the
service, not to actually monitor name owner changes; so unwatch the
name once that's done.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2381

6 years agomain: Activate notification proxy on start
Florian Müllner [Wed, 4 Mar 2020 01:35:21 +0000 (02:35 +0100)]
main: Activate notification proxy on start

At least for the time being, this looks like the easiest option to
launch the service:

 - we could add a systemd unit, but then we'd need to update the
   RequiredComponents in the fallback session definition as well,
   making it necessary for gnome-shell, gnome-shell-extensions and
   gnome-session to be updated to 3.36.1 in lockstep

 - autostart is problematic as it would make gnome-shell conflict
   with other notification daemons; also autostart is most useful
   with automatic shutdown, which would require tracking signal
   subscriber to determine when the service is unused

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/547

6 years agodbusServices/notifications: Add a separate notification daemon
Florian Müllner [Thu, 16 May 2019 19:08:06 +0000 (21:08 +0200)]
dbusServices/notifications: Add a separate notification daemon

Add a small service that exposes the Fdo notification API under the
well-known name, and forwards any requests to the actual implementation
in the shell.

That way any app with permission to talk to org.freedesktop.Notifications
will get exactly that, and nothing more.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/547

6 years agomain: Stop owning the public org.freedesktop.Notifications name
Florian Müllner [Thu, 16 May 2019 17:30:35 +0000 (19:30 +0200)]
main: Stop owning the public org.freedesktop.Notifications name

For sandboxed apps, permission to talk to org.freedesktop.Notifications
looks innocent enough. However as all exported services share the same
connection to the session bus, that permission actually grants an app
access to *any* shell D-Bus API.

While we want apps to use the notification portal, it is still common
for apps to use libnotify, raw D-Bus calls or even notify-send.

We don't want to give those apps a way to circumvent most of the sandbox
restrictions, so stop owning the org.freedesktop.Notifications name.

In a next step we will implement a separate notification-daemon that
exposes the API on the well-known address and proxies any requests to
the real implementation in gnome-shell.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/547

6 years agodbusServices: Add some base classes for small stand-alone services
Florian Müllner [Wed, 4 Mar 2020 02:06:57 +0000 (03:06 +0100)]
dbusServices: Add some base classes for small stand-alone services

There are a couple of D-Bus services that are currently provided by
gnome-shell for which it makes sense to move them fully or partially
into separate processes:

 - screen recording (performance)
 - FDO notifications (security)
 - Extensions (portalization)

Add some base classes and build system glue to take care of the
common boilerplate.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/547

6 years agoapp-cache: add ShellAppCache for GAppInfo caching
Christian Hergert [Fri, 28 Feb 2020 03:36:14 +0000 (19:36 -0800)]
app-cache: add ShellAppCache for GAppInfo caching

This caches GAppInfo so that the compositor thread does not have to perform
costly disk access to load them. Instead, they are loaded from a worker
thread and the ShellAppCache notifies of changes.

To simplify maintenance, ShellAppCache manages this directly and the
existing ShellAppSystem wraps the cache. We may want to graft these
together in the future, but now it provides the easiest way to backport
changes to older Shell releases.

Another source of compositor thread disk access was in determining the
name for an application directory. Translations are provided via GKeyFile
installed in "desktop-directories". Each time we would build the name
for a label (or update it) we would have to load all of these files.

Instead, the ShellAppCache caches that information and updates the cache
in bulk when those change. We can reduce this in the future to do less
work, but chances are these will come together anyway so that is probably
worth fixing if we ever come across it.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2282

6 years agoSt: Ensure to update entry hint visibility with IM preedit
Carlos Garnacho [Wed, 11 Mar 2020 11:32:07 +0000 (12:32 +0100)]
St: Ensure to update entry hint visibility with IM preedit

Commit 88ac339774 changed StEntry behavior so the text hint would
stay visible while focused, as long as the text buffer is empty.
However, IMs that use preedit still should count as "started typing",
while the text buffer is still officially empty.

To fix this, check on st_entry_update_hint_visibility() that there's
indeed no preedit buffer before showing the hint. We can't directly
listen to internal preedit buffer changes in ClutterText, so handle
preedit buffer updates through the ::cursor-changed signal that will
be indirectly emitted.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1084

6 years agowindowManager: Do not shutdown ibus/xsettings on X11 compositor restart
Carlos Garnacho [Tue, 10 Mar 2020 12:23:17 +0000 (13:23 +0100)]
windowManager: Do not shutdown ibus/xsettings on X11 compositor restart

These paths are meant for Xwayland, not for X11 compositors being restarted
through alt-f2 + r. Maybe some signal analogous to init-xserver should be
added for Xwayland shutdown paths, but this signal we are currently
listening for is backend agnostic.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/2329
6 years agoibusManager: fix ibus launch error because of wrong method name
Alynx Zhou [Mon, 9 Mar 2020 02:09:47 +0000 (10:09 +0800)]
ibusManager: fix ibus launch error because of wrong method name

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1080

6 years agoUpdate German translation
Tim Sabsch [Mon, 9 Mar 2020 22:40:48 +0000 (22:40 +0000)]
Update German translation

6 years agost/texture-cache: Fix invalid memory write related to X11 window icons
Sebastian Keller [Mon, 9 Mar 2020 01:17:19 +0000 (02:17 +0100)]
st/texture-cache: Fix invalid memory write related to X11 window icons

st_texture_cache_bind_weak_notify calls g_clear_signal_handler which
then calls st_texture_cache_free_bind. st_texture_cache_free_bind frees
the bind structure, so by the time g_clear_signal_handler tries to write
bind->notify_signal_id, bind has already been freed.

Fix this by using g_signal_handler_disconnect instead.

This partially reverts 135d178d08

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2334

6 years agoUpdate Norwegian Bokmål translation
Kjartan Maraas [Mon, 9 Mar 2020 15:40:01 +0000 (15:40 +0000)]
Update Norwegian Bokmål translation

6 years agoUpdate Czech translation
Daniel Rusek [Mon, 9 Mar 2020 15:18:03 +0000 (15:18 +0000)]
Update Czech translation

6 years agofileUtils: Remove some compatibility code
Florian Müllner [Sat, 7 Mar 2020 18:28:48 +0000 (19:28 +0100)]
fileUtils: Remove some compatibility code

The condition was added to keep working with the then-stable version
of gjs. We already require a more recent version now, so the compat
code is effectively dead.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1077

6 years agojs: Remove unused files from resources
Florian Müllner [Sat, 7 Mar 2020 13:18:08 +0000 (14:18 +0100)]
js: Remove unused files from resources

fileUtils hasn't used Params since 2013, but was still importing it
until commit a1534dab0264 ...

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1077

6 years agoUpdate Japanese translation
sicklylife [Mon, 9 Mar 2020 12:47:10 +0000 (12:47 +0000)]
Update Japanese translation

6 years agoUpdated Czech translation
Marek Černocký [Mon, 9 Mar 2020 12:45:33 +0000 (13:45 +0100)]
Updated Czech translation

6 years agoUpdate Japanese translation
sicklylife [Mon, 9 Mar 2020 12:35:24 +0000 (12:35 +0000)]
Update Japanese translation

6 years agost/password-entry: Fix peek icon leak
Sebastian Keller [Sun, 8 Mar 2020 22:51:55 +0000 (23:51 +0100)]
st/password-entry: Fix peek icon leak

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1078

6 years agoUpdate Catalan translation
Jordi Mas [Sun, 8 Mar 2020 20:56:30 +0000 (21:56 +0100)]
Update Catalan translation

6 years agoUpdate Serbian translation
Марко Костић [Sun, 8 Mar 2020 20:21:47 +0000 (20:21 +0000)]
Update Serbian translation

6 years agoextensionPrefs: Stop escaping extension name
Florian Müllner [Tue, 3 Mar 2020 23:26:04 +0000 (00:26 +0100)]
extensionPrefs: Stop escaping extension name

The corresponding label no longer uses markup, so we can and should use
the unescaped name.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2305

6 years agoappDisplay: Reload folder views on installed app changes
Jonas Dreßler [Mon, 17 Feb 2020 15:21:58 +0000 (16:21 +0100)]
appDisplay: Reload folder views on installed app changes

Since the FolderViews are not connected to the "installed-changed"
signal, we need to reload their apps by calling _redisplay() when an app
is removed or installed. We can't connect to "installed-changed" inside
FolderView because we need to ensure _redisplay() of the FolderView is
called before AppView tries to access the apps of the folder inside
_refilterApps(). So reload the FolderViews inside AllViews _redisplay()
implementation to ensure everything is up to date before accessing the
apps of the folder.

Since the "apps-changed" signal of FolderIcon now indirectly triggers a
_redisplay() of the FolderViews, the 'changed' handler of FolderView is
now redundant and can be removed. Because of this, we also need to move
the emission of the "apps-changed" signal to the start of the signal
handler to make sure the view is updated before we try to access items
of the view.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1901

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Disconnect folder "changed" signal when actors are destroyed
Jonas Dreßler [Mon, 17 Feb 2020 14:40:55 +0000 (15:40 +0100)]
appDisplay: Disconnect folder "changed" signal when actors are destroyed

We should disconnect the folders "changed" signal from the folder in
case the FolderView or FolderIcon is destroyed. While at it, also remove
the unused this._spaceReadySignalId of FolderIcon.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Implement an addApp() method for FolderViews
Jonas Dreßler [Mon, 17 Feb 2020 15:56:10 +0000 (16:56 +0100)]
appDisplay: Implement an addApp() method for FolderViews

Similar to removeApp(), implement addApp() in FolderView to make adding
folders to views a bit more obvious.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Rename _redisplay() functions unrelated to BaseAppView
Jonas Dreßler [Mon, 17 Feb 2020 14:35:49 +0000 (15:35 +0100)]
appDisplay: Rename _redisplay() functions unrelated to BaseAppView

The _redisplay() function is usally used for subclasses of BaseAppView
which want to implement their own _redisplay() function, having that
function name in two classes which have nothing to do with BaseAppView
can be quite confusing. Make those names less confusing and call the
functions  _sync() and _rebuildMenu() instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Add back background color for folder icons
Jonas Dreßler [Sun, 16 Feb 2020 20:56:27 +0000 (21:56 +0100)]
appDisplay: Add back background color for folder icons

During this cycle the background color of the folder icons was removed
(probably fallout from the theme refactor), this was not intended
design-wise, so add it back.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Properly hide overlay scrollbar in folders
Jonas Dreßler [Sun, 16 Feb 2020 20:55:39 +0000 (21:55 +0100)]
appDisplay: Properly hide overlay scrollbar in folders

Use the scroll-view policy ST_POLICY_EXTERNAL to hide the scrollbar
instead of setting its css properties to hidden, where it can still be
clicked but isn't visible.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Remove the top padding from folder app grid
Jonas Dreßler [Mon, 17 Feb 2020 13:21:51 +0000 (14:21 +0100)]
appDisplay: Remove the top padding from folder app grid

There already is a bottom padding defined for the name container of the
folder, so remove the top padding of the appGrid and make sure we can
show a few more icons inside the folder.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Take the viewBox into account for the contentBox of folders
Jonas Dreßler [Mon, 17 Feb 2020 13:12:47 +0000 (14:12 +0100)]
appDisplay: Take the viewBox into account for the contentBox of folders

The viewBox has a border applied, so when we call adaptToSize using only
the content box of the container, the width of the border is not removed
from the content box and the grid will be allocated less space than what
we told it before using adaptToSize.

Fix that by adjusting the content box for the size of the viewBox, too.
This makes sure the correct amount of columns can be shown inside a
folder, since right now we only show 3 colums even though 4 would fit.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agobuild: Fix some harmless compiler warnings
Florian Müllner [Mon, 2 Mar 2020 17:16:25 +0000 (18:16 +0100)]
build: Fix some harmless compiler warnings

Some (newer?) GCC versions complain when a g_auto variable isn't
initialized when declared, even when the initialization is guaranteed
to happen before the variable is used or goes out of scope.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2298

6 years agoBump extensions-tool version as well
Florian Müllner [Sun, 8 Mar 2020 00:21:49 +0000 (01:21 +0100)]
Bump extensions-tool version as well

6 years agoBump version to 3.36.0
Florian Müllner [Sat, 7 Mar 2020 21:47:10 +0000 (22:47 +0100)]
Bump version to 3.36.0

Update NEWS.

6 years agoUpdate Dutch translation
Nathan Follens [Sat, 7 Mar 2020 21:50:08 +0000 (21:50 +0000)]
Update Dutch translation

6 years agoslider: Include handle border radius when calculating center offset
Jonas Dreßler [Sun, 1 Mar 2020 13:01:14 +0000 (14:01 +0100)]
slider: Include handle border radius when calculating center offset

Since 38da479ee we correctly ceil the non-integer radius of the slider
handle when calculating the offset for drawing the circle. Since the
handle also has a border with a width of 1px by default, we should also
factor that in when calculating the offset.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1569

6 years agoTheme: colorize .folder-namel-label
ub [Tue, 3 Mar 2020 11:47:21 +0000 (11:47 +0000)]
Theme: colorize .folder-namel-label

- so it receives the correct color, independent from the theme $variant (light/dark)

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1059

6 years agolocation: Update desktop file name for privacy settings
Sebastian Keller [Wed, 4 Mar 2020 22:24:18 +0000 (23:24 +0100)]
location: Update desktop file name for privacy settings

The location settings have been moved to their own panel with a
different desktop file:
https://gitlab.gnome.org/GNOME/gnome-control-center/-/commit/f92f6f5c

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2316

6 years agomain: Get the theme resource name from sessionMode
Marco Trevisan (Treviño) [Tue, 3 Mar 2020 09:05:54 +0000 (10:05 +0100)]
main: Get the theme resource name from sessionMode

Along the lines of `styleSheetName`, a session mode may want to provide its
own gresource file, so make this possible via a `themeResourceName` session
mode parameter, defaulted to gnome-shell-theme.gresource

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1063

6 years agoshellDBus: Add new OpenExtensionPrefs method
Florian Müllner [Thu, 5 Mar 2020 01:00:57 +0000 (02:00 +0100)]
shellDBus: Add new OpenExtensionPrefs method

Unlike any other methods in the Extensions API, LaunchExtensionPrefs()
opens what appears to be an application dialog, except that it is
really a separate application that the caller has no control over.

In order to address that, add a new OpenExtensionPrefs() method that
takes additional parameters (modelled after the desktop portal APIs)
that will make it possible to improve the behavior in the future.

The new parameters are ignored for now, but pushing the API out now
will allow us to fill in the functionality post the .0 release.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1074

6 years agoshellDBus: Add UserExtensionsEnabled property
Florian Müllner [Thu, 5 Mar 2020 17:15:37 +0000 (18:15 +0100)]
shellDBus: Add UserExtensionsEnabled property

The 'disable-user-extensions' GSettings key is the last extensions-related
setting that isn't exposed over D-Bus, and therefore requires consumers
to access the GSettings directly.

Expose the setting as UserExtensionsEnabled readwrite property in the
org.gnome.Shell.Extensions interface to allow consumers to manage
extensions purely via D-Bus.

The 'disable-user-extensions' setting is the last extension-related
bit from the org.gnome.shell GSettings schema that is not exposed
via D-Bus.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1074

6 years agoibusManager: Ensure to spawn --xim on non-wayland sessions
Carlos Garnacho [Wed, 4 Mar 2020 16:52:27 +0000 (17:52 +0100)]
ibusManager: Ensure to spawn --xim on non-wayland sessions

This (mistakenly) now only depends on signals triggered on Wayland
sessions. Hardcoding the XIM support on X11 sessions will make input
in some clients work again.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1690
6 years agowindowManager: X11 can work without gsd-xsettings
Olivier Fourdan [Tue, 3 Mar 2020 12:14:23 +0000 (13:14 +0100)]
windowManager: X11 can work without gsd-xsettings

Currently, a failure to start the Systemd unit `gsd-xsettings.target`
would be considered a failure to start Xwayland.

That means that if `gsd-xsettings.target` fails to start for whatever
reason, no X11 client can be used on Wayland.

However, XSettings is by no mean mandatory for X11 clients and many
legacy X11 clients do not implement XSettings. Those who do always have
a fallback path and therefore can still work without XSettings.

Make a failure to start the Systemd unit `gsd-xsettings.target` non
blocking for Xwayland, and just log a warning message.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1065

6 years agoshell/tray-manager: Delay managing screen if necessary
Florian Müllner [Wed, 4 Mar 2020 13:27:54 +0000 (14:27 +0100)]
shell/tray-manager: Delay managing screen if necessary

Now that Xwayland startup is asynchronous, the function may be called
before X11 is available, resulting in a crash.

Fix this by only managing the tray immediately if we already have an
X11 display, and wait for it to be set up otherwise.

Likewise, unmanage the screen when X11 becomes unavailable.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2308